package com.graduation.project.service.process;

import com.baomidou.mybatisplus.extension.service.IService;
import com.graduation.project.entity.dto.DeleteFileDTO;
import com.graduation.project.entity.dto.UploadFileDTO;
import com.graduation.project.entity.dto.task.ListTaskDTO;
import com.graduation.project.entity.dto.UpdateStatusDTO;
import com.graduation.project.entity.po.OpenReport;
import com.graduation.project.utils.ResultUtil;
import org.springframework.web.multipart.MultipartFile;

import java.util.Map;

public interface OpenReportService extends IService<OpenReport> {

    void createOpenReport(Long taskId);

    /**
     * 查询开题报告列表数据
     * @param input 查询开题报告输入类
     * @return ResultUtil
     */
    ResultUtil<?> listOpenReportByCondition(ListTaskDTO input);

    /**
     * 编辑（上传）开题报告
     * @param input 文件
     * @return ResultUtil
     */
    ResultUtil<?> uploadOpenReportFile(UploadFileDTO input);

    /**
     * 删除开题报告
     * @param input 删除文件输入类
     * @return ResultUtil
     */
    ResultUtil<?> deleteOpenReportFile(DeleteFileDTO input);

    /**
     * 教师审核
     * @param input 审核输入类
     * @return ResultUtil
     */
    ResultUtil<?> teacherAuditOpenReport(UpdateStatusDTO input);

    /**
     * 主任审核
     * @param input 审核输入类
     * @return ResultUtil
     */
    ResultUtil<?> directorAuditOpenReport(UpdateStatusDTO input);

    /**
     * 获取审核信息
     * @param id 开题报告id
     * @return ResultUtil
     */
    ResultUtil<?> getAuditMessage(Long id);
}
